#include "UInt32.h"

UInt32::UInt32(unsigned int valor) {
    this->_valor = valor;
    this->_punteroADato = &_valor;
}

UInt32::UInt32(string valor) {
    this->_valor = atoi(valor.c_str());
    this->_punteroADato = &_valor;
}

UInt32::UInt32(void* punteroADato){
    this->_punteroADato = punteroADato;
}

void UInt32::comparar(TipoDeDato& tipoDeDato,ostream& out) {
    unsigned int* otroValor = (unsigned int*) tipoDeDato.damePunteroADato();
    if ( _valor != *otroValor )
        out << "Se esperaba " << _valor << " y se obtuvo " << *otroValor << " . Diferencia: " << _valor - (*otroValor) << endl;
}

unsigned int UInt32::dameValor() {
    return this->_valor;
}

ClaseDeDato UInt32::getClass() {
    return C_U_INTEGER_32;
}
